home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / COMAL / B-Book Series / (k)b9.d64 / c64symb.pal (.txt) < prev    next >
Commodore BASIC  |  2007-02-28  |  25KB  |  858 lines

  1. 10 ;
  2. 20 ;
  3. 30 ;       +------------------------------------------------+
  4. 40 ;       !                                                !
  5. 50 ;       !                                                !
  6. 60 ;       !     ******  COMMODORE 64  COMAL-80  ******     !
  7. 70 ;       !                                                !
  8. 80 ;       !     (C) COPYRIGHT UNICOMAL APS  1983, 1984     !
  9. 90 ;       !                                                !
  10. 100 ;       !                                                !
  11. 110 ;       !  C64SYMB FOR COMMODORE 64  COMAL-80 REV. 2.01  !
  12. 120 ;       !                                                !
  13. 130 ;       !                                                !
  14. 140 ;       +------------------------------------------------+
  15. 150 ;
  16. 160 ;
  17. 170 ;
  18. 180 TRUE =1
  19. 190 FALSE =0
  20. 200 ;
  21. 210 PAGE0 =%11100000 ;NO EXPANSION
  22. 220 PAGE1 =%10000000 ;CARTRIDGE OVERLAY 1 ($8000-$BFFF)
  23. 230 PAGE2 =%10000001 ;CARTRIDGE OVERLAY 2 ($8000-$BFFF)
  24. 240 PAGE3 =%10000010 ;CARTRIDGE OVERLAY 3 ($8000-$BFFF)
  25. 250 PAGE4 =%10000011 ;CARTRIDGE OVERLAY 4 ($8000-$BFFF)
  26. 260 PAGE5 =%10000100 ;CARTRIDGE OVERLAY 5 ($8000-$BFFF)
  27. 270 PAGE6 =%10000101 ;CARTRIDGE OVERLAY 6 ($8000-$BFFF)
  28. 280 ;
  29. 290 PAGEA =PAGE2 ;COMAL PAGE A
  30. 300 PAGEB =PAGE3 ;COMAL PAGE B
  31. 310 PAGEC =PAGE1 ;COMAL PAGE C
  32. 320 ;
  33. 330 ;
  34. 340 ;
  35. 350 ;     PAGE ZERO VARIABLES:
  36. 360 ;     ====================
  37. 370 ;
  38. 380 *=$0000
  39. 390 ;
  40. 400 D6510 *=*+1 ;6510 ON-CHIP DATA-DIRECTION REGISTER
  41. 410 R6510 *=*+1 ;6510 ON-CHIP 6-BIT I/O/MAP-REGISTER:
  42. 420 LORAM =%00000001 ;  CONTROL FOR RAM/ROM AT $A000-$BFFF (BASIC)
  43. 430 HIRAM =%00000010 ;  CONTROL FOR RAM/ROM AT $E000-$FFFF (KERNAL)
  44. 440 CHAREN =%00000100 ;  CONTROL FOR I/O/ROM AT $D000-$DFFF
  45. 450 NORM =%00110111 ;  COMAL MEMORY MAP
  46. 460 ;
  47. 470 PRPROC *=*+3 ;CHAIN OF LOCAL NAMES (PREPASS)
  48. 480 INTEGR *=*+1 ;FP WORK
  49. 490 ;
  50. 500 ;  MEMORY MAP CONTROL
  51. 510 ;
  52. 520 PAGE *=*+1 ;CURRENT MEMORY MAP
  53. 530 CM8096 =PAGE
  54. 540 MEMMAP =PAGE
  55. 550 PAGEPT *=*+2 ;POINTER USED BY LOAD/STORE/EXEC
  56. 560 PAGEX *=*+1 ;OVERLAY FOR LOAD/STORE/EXEC ROUTINES
  57. 570 PAGEY *=*+1 ;OVERLAY USED FOR CONTROL OF JUMP TABLE
  58. 580 P6510 *=*+1 ;OLD C64-OVERLAY FOR CONTROL OF JUMP TABLE
  59. 590 RESOL *=*+1 ;GRAPHICS RESOLUTION
  60. 600 GCOLH *=*+1 ;GRAPHICS PENCOLOR*16
  61. 610 ;
  62. 620 ;  COMAL VARIABLES
  63. 630 ;
  64. 640 LOCLPT *=*+2 ;CHAIN OF OLD VARIABLE DESCRIPTIONS
  65. 650 FORPT *=*+2 ;STACK ENTRY CHAIN
  66. 660 SCTYPE *=*+1 ;TYPE OF SYMBOL FROM SCANNER
  67. 670 TANSGN *=*+1 ;TAN SIGN / COMPARISON EVALUATION FLAG
  68. 680 CODE *=*+1 ;USED TO HOLD A GENERATED CODE
  69. 690 CPNT *=*+1 ;POINTER TO CODE BUFFER, CDBUF
  70. 700 CLIMIT =255 ;LIMIT OF CPNT
  71. 710 SPROG *=*+2 ;PNT TO START OF PROGRAM
  72. 720 SVARS *=*+2 ;PNT TO START OF VARIABLE TABLE
  73. 730 SSTACK *=*+2 ;PNT TO START OF STACK
  74. 740 SMAX *=*+2 ;PNT TO TOP OF MEMORY
  75. 750 EXINF *=*+1 ;INF FOR RESULT EXPRESSION FROM EXPR
  76. 760 SCERR =$01
  77. 770 SCLNO =$08 ;SET, IF NUMBER CAN BE A LINE NUMBER
  78. 780 LNLEN *=*+1 ;LENGTH OF LINE TO BE EXECUTED
  79. 790 NPNT *=*+1 ;POINTER TO NAME
  80. 800 TPNT *=*+1 ;POINTER TO STRING
  81. 810 TLIMIT =80
  82. 820 ;
  83. 830 INDEX1 *=*+2 ;UTILITY POINTER
  84. 840 INDEX2 *=*+2 ;UTILITY POINTER
  85. 850 INDEX =INDEX1
  86. 860 ;
  87. 870 RESM1 *=*+1 ;PRODUCT AREA FOR MULTIPLICATION
  88. 880 RESM2 *=*+1
  89. 890 RESM3 *=*+1
  90. 900 RESM4 *=*+1
  91. 910 RESM5 *=*+1
  92. 920 ;
  93. 930 MULT1 =RESM1 ;FIRST OPERAND (MULT)
  94. 940 MULT2 =RESM3 ;SECOND OPERAND (MULT)
  95. 950 ;
  96. 960 DATAPT *=*+2 ;CURRENT DATA POINTER
  97. 970 STOS *=*+2 ;PNT TO TOP OF STACK
  98. 980 SFREE *=*+2 ;PNT TO FREE AREA OF VAR.RES
  99. 990 PRGPNT *=*+2 ;PNT TO START OF LINE
  100. 1000 CODPNT *=*+1 ;PNT TO CODE DURING EXECUTION
  101. 1010 SCLSD1 *=*+2 ;OLD SFREE (CLOSED)
  102. 1020 SCLSD2 *=*+2 ;OLD STOS  (CLOSED)
  103. 1030 INF1 *=*+1
  104. 1040 INF2 *=*+1 ;USED FOR OPERAND CHECKING
  105. 1050 INF3 *=*+1
  106. 1060 Q1 *=*+2 ;SHORT SPAN WORK AREAS
  107. 1070 Q2 *=*+2
  108. 1080 Q3 *=*+2
  109. 1090 Q4 *=*+2
  110. 1100 Q5 *=*+2
  111. 1110 COPY1 *=*+2 ;WORK FOR COPY  FROM
  112. 1120 COPY2 *=*+2 ;               TO
  113. 1130 FDECPT =COPY2 ;CURRENT VARIABLE ADDRESS (DEC POINTER)
  114. 1140 COPY3 *=*+2 ;               LENGTH
  115. 1150 BUS *=*+1 ;BUS=0  BUS IDLE; BUS<>0  BUS ACTIVE
  116. 1160 STINF *=*+1 ;INFORMATION FOR STATEMENT
  117. 1170 CMND =$01 ;  NO LINE NUMBER
  118. 1180 TWOST =$02 ;  ANOTHER STATEMENT FOLLOWS
  119. 1190 WHLDO =$04 ;  AFTER WHILE ... DO
  120. 1200 FORDO =$08 ;  AFTER FOR ... DO
  121. 1210 COMMNT =$10 ;  STATEMENT ENDED BY COMMENT
  122. 1220 IFTHEN =$20 ;  AFTER IF ... THEN
  123. 1230 REPUNT =$40 ;  AFTER REPEAT ... UNTIL
  124. 1240 ;
  125. 1250 EXCINF *=*+1 ;EXECUTION INFORMATION:
  126. 1260 ESCTRP =$02 ;  ESCAPE IS TRAPPED (STOP)
  127. 1270 SRQ =$04 ;  MAKE CALL OF COMAL INTERRUPT HANDLER.
  128. 1280 ESCMET =$08 ;  ESCAPE MET (STOP)
  129. 1290 SRQON =$10 ;  SRQ ENABLED
  130. 1300 USRQON =$20 ;  USER REQUEST ENABLED
  131. 1310 SFTSRQ =$80 ;  SOFTWARE SRQ ONLY
  132. 1320 ;
  133. 1330 ;  VARIABLES FOR FLOATING POINT PACKAGES
  134. 1340 ;
  135. 1350 TEMPF3 *=*+6 ;MISC. FP WORK AREA
  136. 1360 ESCAPE *=*+1 ;STOP KEY FLAG
  137. 1370 *=*+1 ;NOT USED
  138. 1380 OLDOV *=*+1 ;OLD OVERFLOW (ROUNDING)
  139. 1390 TEMPF1 *=*+5 ;MISC. FP WORK AREA (5 BYTES)
  140. 1400 TEMPF2 *=*+5 ;MISC. FP WORK AREA (5 BYTES)
  141. 1410 DECCNT =TEMPF2+1
  142. 1420 TENEXP =TEMPF2+2
  143. 1430 ;
  144. 1440 AC1 *=*+6 ;ACCUM#1:
  145. 1450 AC1E =AC1+0 ;  EXPONENT
  146. 1460 AC1M1 =AC1+1 ;  MANTISSA 1
  147. 1470 AC1M2 =AC1+2 ;  MANTISSA 2
  148. 1480 AC1M3 =AC1+3 ;  MANTISSA 3
  149. 1490 AC1M4 =AC1+4 ;  MANTISSA 4
  150. 1500 AC1S =AC1+5 ;  SIGN
  151. 1510 ;
  152. 1520 DEGREE *=*+1 ;SERIES EVALUATION CONSTANT POINTER
  153. 1530 BITS *=*+1 ;ACCUM#1  HI-ORDER (OVERFLOW)
  154. 1540 ;
  155. 1550 AC2 *=*+6 ;ACCUM#2
  156. 1560 AC2E =AC2+0 ;  EXPONENT
  157. 1570 AC2M1 =AC2+1 ;  MANTISSA 1
  158. 1580 AC2M2 =AC2+2 ;  MANTISSA 2
  159. 1590 AC2M3 =AC2+3 ;  MANTISSA 3
  160. 1600 AC2M4 =AC2+4 ;  MANTISSA 4
  161. 1610 AC2S =AC2+5 ;  SIGN
  162. 1620 ;
  163. 1630 ARISGN *=*+1 ;SIGN COMPARISON, ACC#1 VS ACC#2
  164. 1640 FACOV *=*+1 ;ACCUM#1  LO-ORDER (ROUNDING)
  165. 1650 POLYPT *=*+2 ;POINTER TO POLYNOM.
  166. 1660 FBUFPT =POLYPT
  167. 1670 ;
  168. 1680 ;  MORE COMAL VARIABLES
  169. 1690 ;
  170. 1700 ASAVE *=*+1 ;SAVE FOR .A (CALL/GOTO)
  171. 1710 XSAVE *=*+1 ;SAVE FOR .X (CALL/GOTO)
  172. 1720 PSAVE *=*+1 ;SAVE FOR .P (CALL/GOTO)
  173. 1730 INDPNT *=*+1 ;POINTER TO LAST CODE WHERE AN ADDRESS WAS LOADED
  174. 1740 SCFLAG *=*+1 ;FLAGS IN SCANNER:
  175. 1750 LNNO *=*+2 ;LINE NUMBER
  176. 1760 MOVEAD *=*+2 ;ADDRESS FOR MOVE
  177. 1770 TXTLO *=*+1 ;ADDRESS OF TEXT FOR PRTXT
  178. 1780 TXTHI *=*+1
  179. 1790 XX *=*+2 ;CURRENT X (GRAPHICS)
  180. 1800 YY *=*+2 ;CURRENT Y (GRAPHICS)
  181. 1810 GRWK1 *=*+2
  182. 1820 GRWK2 *=*+2
  183. 1830 GRWK3 *=*+2
  184. 1840 EXCFLG *=*+1 ;FLAGS:
  185. 1850 NWNAME =$01 ; NEW NAME HAS BEEN INSERTED
  186. 1860 NWLINE =$02 ; NEW LINE HAS BEEN INSERTED
  187. 1870 CHARPT *=*+1 ; PNT TO INBUF
  188. 1880 CHAR *=*+1 ; CHAR FROM INCHAR
  189. 1890 RNDX *=*+5 ; RANDOM NUMBER SEED
  190. 1900 ;
  191. 1910 ;  VARIABLES FOR I/O
  192. 1920 ;
  193. 1930 STATUS *=*+1 ;I/O OPERATION STATUS
  194. 1940 STKEY *=*+1 ;STOP KEY FLAG
  195. 1950 SVXT *=*+1 ;TEMPORARY
  196. 1960 VERCK *=*+1 ;LOAD OR VERIFY FLAG
  197. 1970 C3P0 *=*+1 ;IEEE BUFFERED CHAR FLAG
  198. 1980 BSOUR *=*+1 ;CHAR BUFFER FOR IEEE
  199. 1990 SYNO *=*+1 ;CASSETTE SYNC #
  200. 2000 XSAV *=*+1 ;TEMP FOR BASIN
  201. 2010 LDTND *=*+1 ;HOW MANY FILES OPEN
  202. 2020 DFLTN *=*+1 ;DEFAULT INPUT DEVICE #
  203. 2030 DFLTO *=*+1 ;DEFAULT OUTPUT DEVICE #
  204. 2040 PRTY *=*+1 ;CASSETTE PARITY
  205. 2050 T3 =PRTY
  206. 2060 DPSW *=*+1 ;CASSETTE DIPOLE SWITCH
  207. 2070 MSGFLG *=*+1 ;OS MESSAGE FLAG
  208. 2080 PTR1 *=*+1 ;CASSETTE ERROR PASS 1
  209. 2090 T1 =PTR1 ;TEMPORARY 1
  210. 2100 PTR2 *=*+1 ;CASSETTE ERROR PASS 2
  211. 2110 TMPC =PTR2
  212. 2120 T2 =PTR2 ;TEMPORARY 2
  213. 2130 TIME *=*+3 ;24 HOUR CLOCK IN 1/60 SEC.
  214. 2140 R2D2 =* ;SERIAL BUS USAGE
  215. 2150 PCNTR *=*+1 ;CASSETTE STUFF
  216. 2160 BSOUR1 =* ;TEMP USED BY SERIAL ROUTINE
  217. 2170 FIRT *=*+1
  218. 2180 COUNT =* ;TEMP USED BY SERIAL ROUTINE
  219. 2190 CNTDN *=*+1 ;CASSETTE SYNC COUNTDOWN
  220. 2200 BUFPT *=*+1 ;TAPE BUFFER POINTER
  221. 2210 SHCNL =* ;CASSETTE SHORT COUNT
  222. 2220 INBIT *=*+1 ;RS232 RCVR INPUT BIT STORAGE
  223. 2230 RER =* ;CASSETTE READ ERROR
  224. 2240 BITCI *=*+1 ;RS232 RCVR BIT COUNT IN
  225. 2250 REZ =* ;CASSETTE READING ZEROES
  226. 2260 RINONE *=*+1 ;RS232 RCVR FLAG FOR START BIT CHECK
  227. 2270 RDFLG =* ;CASSETTE READ MODE
  228. 2280 RIDATA *=*+1 ;RS232 RCVR BYTE BUFFER
  229. 2290 RIPRTY *=*+1 ;RS232 RCVR PARITY STORAGE
  230. 2300 SHCNH =RIPRTY ;CASSETTE SHORT COUNT
  231. 2310 SAL *=*+1 ;POINTER  TAPE BUFFER/SCREEN SCROLLING
  232. 2320 SAH *=*+1
  233. 2330 EAL *=*+1
  234. 2340 EAH *=*+1
  235. 2350 CMP0 *=*+1 ;TAPE TIMING CONSTANT
  236. 2360 TEMP *=*+1 ;TAPE TIMING CONSTANT
  237. 2370 TAPE1 *=*+2 ;START OF TAPE BUFFER
  238. 2380 ;
  239. 2390 SNSW1 =* ;CASSETTE STUFF
  240. 2400 BITTS *=*+1 ;RS232 TRNS BIT COUNT
  241. 2410 NXTBIT *=*+1 ;RS232 TRNS NEXT BIT TO BE SENT
  242. 2420 DIFF =NXTBIT ;EOT RECEIVED FROM TAPE
  243. 2430 PRP =*
  244. 2440 RODATA *=*+1 ;RS232 TRNS BYTE BUFFER
  245. 2450 FNLEN *=*+1 ;LENGTH OF CURRENT FILE NAME
  246. 2460 LA *=*+1 ;CURRENT FILE LOGICAL ADDRESS
  247. 2470 SA *=*+1 ;CURRENT FILE SECONDARY ADDRESS
  248. 2480 FA *=*+1 ;CURRENT FILE PRIMARY ADDRESS
  249. 2490 FILADR *=*+2 ;CURRENT FILE NAME ADDRESS
  250. 2500 OCHAR =*
  251. 2510 ROPRTY *=*+1 ;RS232 TRNS PARITY BUFFER
  252. 2520 FSBLK *=*+1 ;CASSETTE READ BLOCK COUNT
  253. 2530 MYCH *=*+1 ;SERIAL WORD BUFFER
  254. 2540 CAS1 *=*+1 ;CASSETTE MANUAL/CONTROLLED SWITCH
  255. 2550 STAL *=*+1 ;TAPE START ADDRESS
  256. 2560 STAH *=*+1
  257. 2570 TMP2 =*
  258. 2580 MEMUSS *=*+2 ;TAPE LOAD TEMPS
  259. 2590 ;
  260. 2600 ;  VARIABLES FOR SCREEN EDITOR
  261. 2610 ;
  262. 2620 LSTX *=*+1 ;KEY SCAN INDEX
  263. 2630 NEWKEY =LSTX
  264. 2640 NDX *=*+1 ;KEY BUFFER POINTER
  265. 2650 RVS *=*+1 ;REVERSE FIELD ON FLAG
  266. 2660 INDX *=*+1 ;BYTE POINTER TO END OF LINE FOR INPUT
  267. 2670 LSXP *=*+1 ;START OF SCREEN INPUT (ROW)
  268. 2680 LSTP *=*+1 ;START OF SCREEN INPUT (COLUMN)
  269. 2690 SFDX *=*+1 ;SHIFT MODE ON PRINT
  270. 2700 BLNSW *=*+1 ;CURSOR BLINK ENABLE
  271. 2710 BLNCT *=*+1 ;COUNTER TO FLIP CURSOR
  272. 2720 GDBLN *=*+1 ;OLD CHAR BEFORE BLINK
  273. 2730 BLNON *=*+1 ;ON/OFF BLINK FLAG
  274. 2740 CRSW *=*+1 ;INPUT/GET FLAG
  275. 2750 PNT *=*+2 ;POINTER TO START OF LINE WHERE
  276. 2760 CURLIN =PNT ;CURSOR IS FLASHING.
  277. 2770 PNTR *=*+1 ;COLUMN POSITION WHERE CURSOR
  278. 2780 COLPOS =PNTR ;IS FLASHING.
  279. 2790 QTSW *=*+1 ;FLAG FOR QUOTE MODE
  280. 2800 QUOTE =QTSW
  281. 2810 LNMX *=*+1 ;CURRENT SCREEN LINE LENGTH (39/79)
  282. 2820 TBLX *=*+1 ;LINE NUMBER WHERE CURSOR IS FLASHING
  283. 2830 ROWPOS =TBLX
  284. 2840 DATA *=*+1 ;TEMP DATA AREA
  285. 2850 INSRT *=*+1 ;NUMBER OF INSERT KEYS PUSHED TO (null)
  286. 2860 WRPTB *=*+26 ;LINE FLAGS+ENDSPACE
  287. 2870 LDTB1 =WRPTB
  288. 2880 USER *=*+2 ;SCREEN EDITOR COLOR POINTER
  289. 2890 KEYTAB *=*+2 ;KEYBOARD DECODE TABLE
  290. 2900 ;
  291. 2910 RIBUF *=*+2 ;RS232 INPUT BUFFER ADDRESS
  292. 2920 ROBUF *=*+2 ;RS232 OUTPUT BUFFER ADDRESS
  293. 2930 FREKZP *=*+5 ;FREE KERNAL Z-PAGE SPACE
  294. 2940 ;
  295. 2950 ;  END OF PAGE ZERO
  296. 2960 ;
  297. 2970 STACK *=*+256 ;SYSTEM STACK
  298. 2980 FBUFFR =STACK ;FPASC WORK AREA (15 BYTES)
  299. 2990 BAD =STACK ;TAPE INPUT ERROR LOG
  300. 3000 ;
  301. 3010 ;
  302. 3020 ERTLEN *=*+1 ;LENGTH OF ERTEXT
  303. 3030 MAXERT =79 ;MAX. LENGTH OF ERTEXT
  304. 3040 ERTEXT *=*+MAXERT ;BUFFER TO HOLD ERROR MESSAGE
  305. 3050 ;
  306. 3060 ;
  307. 3070 ;  STORAGE FOR CON COMMAND:
  308. 3080 ;
  309. 3090 CONPNT *=*+2 ;OLD PRGPNT
  310. 3100 CONFLG *=*+1 ;OLD EXCINF
  311. 3110 CONCOD *=*+1 ;OLD CODPNT
  312. 3120 CONFOR *=*+2 ;OLD FORPT
  313. 3130 ;
  314. 3140 FPWORK *=*+1
  315. 3150 EXTROM *=*+1 ;EXTERNAL ROM FLAG (0=NO, 'I'=YES)
  316. 3160 IEEEIN *=*+1 ;IEEE INSTALLED    (0=NO, 'I'=YES)
  317. 3170 ;
  318. 3180 LAT *=*+10 ;TABLE OF LA'S
  319. 3190 FAT *=*+10 ;TABLE OF FA'S
  320. 3200 SAT *=*+10 ;TABLE OF SA'S
  321. 3210 KEYBUF *=*+10 ;KEYBOARD BUFFER QUEUE (FIFO)
  322. 3220 ;
  323. 3230 MEMSTR *=*+2 ;START OF MEMORY
  324. 3240 MEMSIZ *=*+2 ;TOP OF MEMORY
  325. 3250 TIMOUT *=*+1 ;IEEE TIME OUT DEFEAT
  326. 3260 ;
  327. 3270 ;  SCREEN EDITOR STORAGE
  328. 3280 ;
  329. 3290 COLOR *=*+1 ;ACTIVE COLOR NYBBLE
  330. 3300 GDCOL *=*+1 ;ORIGINAL COLOR UNDER CURSOR
  331. 3310 HIBASE *=*+1 ;BAS LOCATION OF SCREEN
  332. 3320 KBFLIM *=*+1 ;SIZE OF KEYBOARD BUFFER
  333. 3330 RPTFLG *=*+1 ;KEY REPEAT FLAG
  334. 3340 RPTCNT *=*+1 ;REPEAT SPEED COUNTER
  335. 3350 DELAY *=*+1 ;REPEAT DELAY COUNTER
  336. 3360 SHFLAG *=*+1 ;KEYBOARD SHIFT KEY/CTRL KEY/C= KEY
  337. 3370 LSTSHF *=*+1 ;LAST KEYBOARD SHIFT PATTERN
  338. 3380 KEYLOG *=*+2 ;VECTOR  KEYBOARD TABLE SETUP
  339. 3390 SHMODE *=*+1 ;0=PET MODE, 1=CATTACANNA
  340. 3400 AUTODN *=*+1 ;AUTO SCROLL DOWN, 0=ON
  341. 3410 ;
  342. 3420 ;  RS232 STORAGE
  343. 3430 ;
  344. 3440 M51CTR *=*+1 ;6551 CONTROL REGISTER IMAGE
  345. 3450 M51CDR *=*+1 ;6551 COMMAND REGISTER IMAGE
  346. 3460 M51AJB *=*+2 ;NON-STANDARD BPS (TIME/2-100) USA
  347. 3470 RSSTAT *=*+1 ;6551 STATUS REGISTER
  348. 3480 BITNUM *=*+1 ;NUMBER OF BITS LEFT TO SEND
  349. 3490 BAUDOF *=*+2 ;BAUD RATE  FULL BIT TIME (MICROSEC)
  350. 3500 RIDBE *=*+1 ;INDEX TO END OF INPUT BUFFER
  351. 3510 RIDBS *=*+1 ;START OF INPUT BUFFER (PAGE)
  352. 3520 RODBS *=*+1 ;START OF OUTPUT BUFFER (PAGE)
  353. 3530 RODBE *=*+1 ;INDEX TO END OF OUTPUT BUFFER
  354. 3540 ;
  355. 3550 IRQTMP *=*+2 ;HOLDS IRQ-VECTOR DURING TAPE I/O
  356. 3560 ;
  357. 3570 ;  TEMP SPACE FOR C64 VARIABLES
  358. 3580 ;
  359. 3590 ENABL *=*+1 ;RS232 ENABLES
  360. 3600 CASTON *=*+1 ;TOD SENSE DURING CASSETTE I/O
  361. 3610 KIKA26 *=*+1 ;TEMP STORAGE FOR CASSETTE READ
  362. 3620 STUPID *=*+1 ;TEMP D1IRQ INDICATOR FOR CASSETTE READ
  363. 3630 LINTMP *=*+1 ;TEMP FOR LINE INDEX
  364. 3640 PALNTS *=*+1 ;FLAG  0=NTSC, 1=PAL
  365. 3650 ;
  366. 3660 FNMAX =55
  367. 3670 FILNAM *=*+FNMAX ;USED FOR STORAGE OF FILE NAME
  368. 3680 TBUFF =FILNAM ;USED FOR STORAGE OF DISC COMMAND
  369. 3690 RANGNO *=*+1 ;LINE # RANGE POINTER
  370. 3700 RANGPT *=*+1 ;LINE # RANGE POINTER
  371. 3710 RANGMX =32
  372. 3720 RANGES *=*+RANGMX ;LINE # RANGES
  373. 3730 IERROR *=*+2 ;VECTOR  PRINT BASIC ERROR MESSAGE
  374. 3740 NUMBER =TEMPF3 ;FP WORK AREA (SYNTAX ANALYSIS)
  375. 3750 *=*+5 ;NOT USED
  376. 3760 NUM2 *=*+5 ;FP WORK AREA (PRINT USING)
  377. 3770 SAREG *=*+8 ;UNUSED
  378. 3780 ;
  379. 3790 ;  KERNAL VECTORS
  380. 3800 ;
  381. 3810 CINV *=*+2 ;IRQ RAM VECTOR
  382. 3820 IRQVCT =CINV
  383. 3830 CBINV *=*+2 ;BRK INSTR RAM VECTOR
  384. 3840 BRKVCT =CBINV
  385. 3850 NMIVCT *=*+2 ;NMI RAM VECTOR
  386. 3860 IOPEN *=*+2 ;OPEN ROUTINE VECTOR
  387. 3870 ICLOSE *=*+2 ;CLOSE ROUTINE VECTOR
  388. 3880 ICHKIN *=*+2 ;CHKIN ROUTINE VECTOR
  389. 3890 ICKOUT *=*+2 ;CKOUT ROUTINE VECTOR
  390. 3900 ICLRCH *=*+2 ;CLRCHN ROUTINE VECTOR
  391. 3910 IBASIN *=*+2 ;CHRIN ROUTINE VECTOR
  392. 3920 IBSOUT *=*+2 ;CHROUT ROUTINE VECTOR
  393. 3930 ISTOP *=*+2 ;STOP ROUTINE VECTOR
  394. 3940 IGETIN *=*+2 ;GETIN ROUTINE VECTOR
  395. 3950 ICLALL *=*+2 ;CLALL ROUTINE VECTOR
  396. 3960 USRCMD *=*+2 ;FOR MACHINE LANGUAGE MONITOR
  397. 3970 ILOAD *=*+2 ;LOAD ROUTINE VECTOR
  398. 3980 ISAVE *=*+2 ;SAVE ROUTINE VECTOR
  399. 3990 *=*+8 ;UNUSED
  400. 4000 TBUFFR *=*+192 ;TAPE I/O BUFFER
  401. 4010 *=*+4 ;UNUSED
  402. 4020 SCSIZE =1000 ;SCREEN SIZE
  403. 4030 SCREEN *=*+SCSIZE ;SCREEN MEMORY AREA
  404. 4040 *=*+16 ;SCREEN MEMORY EXCESS
  405. 4050 SPRPNT *=*+8 ;SPRITE DATA POINTERS
  406. 4060 ;
  407. 4070 ;
  408. 4080 ;  COMAL PROGRAM FOLLOWS HERE:
  409. 4090 ;
  410. 4100 MBEGIN *=*+4 ;START OF MEMORY
  411. 4110 MBEGN1 *=*+1 ;START OF NAME TABLE
  412. 4120 MBEGN2 *=*+1 ;START OF STACKS
  413. 4130 ;
  414. 4140 ;
  415. 4150 ;
  416. 4160 ;  START HERE TO PUT BUFFERS, VARIABLES, AND JUMP TABLE
  417. 4170 ;
  418. 4180 *=$C000
  419. 4190 ;
  420. 4200 RSIBUF *=*+256 ;RS232 INPUT BUFFER
  421. 4210 RSOBUF *=*+256 ;RS232 OUTPUT BUFFER
  422. 4220 ;
  423. 4230 STDPCK *=*+1000 ;VARIABLES FOR STANDARD PACKAGES
  424. 4240 ;
  425. 4250 INLEN =121
  426. 4260 INBUF *=*+INLEN ;INPUT BUFFER
  427. 4270 CDBUF *=*+CLIMIT ;CODE BUFFER
  428. 4280 TXT *=*+TLIMIT ;STRING CONSTANT BUFFER
  429. 4290 TXT1 =TXT-1
  430. 4300 ;
  431. 4310 FLEVEL *=*+1 ;FOR/TRAP NESTING LEVEL DURING PREPASS
  432. 4320 Q6 *=*+2 ;TEMPORARY
  433. 4330 Q7 *=*+2 ;TEMPORARY
  434. 4340 Q8 *=*+2 ;TEMPORARY
  435. 4350 Q9 *=*+2 ;TEMPORARY
  436. 4360 *=*+3 ;UNUSED
  437. 4370 MOVELN =MULT1
  438. 4380 MOVETY =MULT2
  439. 4390 ;
  440. 4400 SPSAV *=*+1 ;SAVE OF .S DURING EXECUTION
  441. 4410 SCINF *=*+2 ;NAME POINTER
  442. 4420 ;
  443. 4430 PSTART =*
  444. 4440 ;
  445. 4450 AUTO1 *=*+2 ;CURRENT LINE NUMBER FOR AUTO
  446. 4460 AUTOST *=*+2 ;STEP FOR AUTO
  447. 4470 ;
  448. 4480 DSTART *=*+2 ;START OF DATA QUEUE
  449. 4490 ;
  450. 4500 TABSET *=*+1 ;VALUE OF LAST ZONE STATEMENT
  451. 4510 ALTPOS *=*+1 ;POSITION IN SELECT OUTPUT FILE
  452. 4520 INTRNO *=*+2 ;PROCEDURE GIVEN BY INTERRUPT STMT.
  453. 4530 ;
  454. 4540 PEND =*
  455. 4550 ;
  456. 4560 ERRPNT *=*+1 ;CHAR POS OF ERROR
  457. 4570 NORINT *=*+2 ;NORMAL INTERRUPT VECTOR
  458. 4580 SAFE *=*+1 ;SAFE STATUS
  459. 4590 MAINRV *=*+1 ;MAIN REVISION
  460. 4600 SUBRV *=*+1 ;SUB REVISION
  461. 4610 TESTRV *=*+1 ;TEST VERSION
  462. 4620 MSGLIN *=*+2 ;ADDRESS OF MESSAGE LINE
  463. 4630 UPPER2 *=*+1 ;COPY OF BORGE
  464. 4640 EXTPRC *=*+1 ;FLAG FOR LOADING OF EXTERNAL PROC/FUNC
  465. 4650 EXTCNT *=*+2 ;NESTING LEVEL OF EXTERNAL PROC/FUNC
  466. 4660 SSIZE *=*+1 ;40 COL./80 COL.
  467. 4670 LUNIT *=*+1 ;LAST DISC (STATUS)
  468. 4680 BORGE *=*+1 ;SPECIAL FLAGS FOR LISTING
  469. 4690 OPENFL *=*+1 ;FLAG USED BY COPEN
  470. 4700 DFUNLN *=*+1 ;LENGTH OF DEFAULT UNIT TEXT
  471. 4710 DFUNIT *=*+2 ;DEFAULT UNIT (POWER UP VALUE  .BYTE '0')
  472. 4720 DEFOUT *=*+1 ;SELECT OUTPUT FLAG
  473. 4730 ;
  474. 4740 IOVECT =* ;VECTORS:
  475. 4750 TRAPVC *=*+2 ;  PAGEB; ERROR HANDLER
  476. 4760 EXTNVC *=*+2 ;  PAGEB; EXTERNAL LOAD
  477. 4770 USRQVC *=*+2 ;  PAGEB; INTERRUPT FACILITY
  478. 4780 IERTXT *=*+3 ;         ERROR MESSAGE DATA
  479. 4790 IGETLN *=*+2 ;  PAGEA; INPUT COMMAND LINE
  480. 4800 ISAVEC *=*+2 ;  PAGEC; SAVE ADDITIONAL INFO
  481. 4810 ILOADC *=*+2 ;  PAGEC; LOAD ADDITIONAL INFO
  482. 4820 IFNKEY *=*+2 ;  PAGEA; HANDLE FUNCTION KEYS
  483. 4830 ;
  484. 4840 LIBPT *=*+1 ;PTR TO PLACE FOR NEXT LIBRARY DESCRIPTION
  485. 4850 ;
  486. 4860 LIBLEN =10 ;NO. OF LIBRARY DESCRIPTIONS
  487. 4870 ;
  488. 4880 LIBLO *=*+LIBLEN
  489. 4890 LIBHI *=*+LIBLEN
  490. 4900 LIBPAG *=*+LIBLEN
  491. 4910 ;
  492. 4920 ;
  493. 4930 ; OPEN FILE MODES (COPEN & CFNAME):
  494. 4940 ;
  495. 4950 MREAD =1 ;READ
  496. 4960 MWRITE =2 ;WRITE
  497. 4970 MREL =4 ;RELATIVE (RANDOM)
  498. 4980 ;
  499. 4990 ; FILE ATTRIBUTES (COPEN):
  500. 5000 ;
  501. 5010 MDISK =8 ;DISK FILE
  502. 5020 MS =16 ;SECONDARY ADDRESS SELECTION
  503. 5030 ML =32 ;AUTO LINEFEED
  504. 5040 MT =64 ;TIME OUT
  505. 5050 MA =128 ;ASCII I/O
  506. 5060 ;
  507. 5070 ; FILE TYPES (CFNAME):
  508. 5080 ;
  509. 5090 TAPPND =8
  510. 5100 TPRG =16
  511. 5110 TSEQ =TPRG+TPRG
  512. 5120 TREL =TSEQ+TPRG
  513. 5130 TUSR =TREL+TPRG
  514. 5140 ;
  515. 5150 MODET *=*+10 ;OPEN MODE FOR FILES
  516. 5160 COUNTT *=*+10 ;TABLE OF BYTE COUNT FOR FILES
  517. 5170 STT *=*+10 ;STATUS FOR OPENED FILES
  518. 5180 RECOTL *=*+10 ;TABLE OF RECORD POS. FOR FILES
  519. 5190 RECOTH *=*+10
  520. 5200 ;
  521. 5210 PPAGE *=*+1 ;OVERLAY TO PEEK/POKE/SYS
  522. 5220 NOREST *=*+1 ;<>0  DISABLE STOP/RESTORE
  523. 5230 LOADIN *=*+1 ;<>0  LOADING COMAL PROGRAM
  524. 5240 UNITFL *=*+1 ;0  SIMP.DEV; 1  DRIVE; 2  CASSETTE
  525. 5250 MODE *=*+1 ;FILE MODE
  526. 5260 CSTAT *=*+1 ;STATUS OF COMAL PROGRAM
  527. 5270 ;
  528. 5280 ;    1. INPUT ANALYSIS FROM SCREEN
  529. 5290 ;    2.   -       -      -  FILE
  530. 5300 ;    3. PREPASSING
  531. 5310 ;    4. EXECUTING A COMMAND
  532. 5320 ;    5. EXECUTING PROGRAM
  533. 5330 ;
  534. 5340 LSTFLG *=*+1 ;BIT VECTOR FOR RCREAT:
  535. 5350 ;
  536. 5360 ININD =$01
  537. 5370 OUTIND =$02
  538. 5380 LSTCON =$04
  539. 5390 NOIND =$08
  540. 5400 LSTEXT =$10
  541. 5410 ;
  542. 5420 LPMODE *=*+1 ;DEFAULT PRINTER OPEN MODE
  543. 5430 LPSA *=*+1 ;DEFAULT PRINTER SECONDARY ADDRESS
  544. 5440 LPFA *=*+1 ;DEFAULT PRINTER UNIT
  545. 5450 ;
  546. 5460 RECDEL *=*+1 ;RECORD POSITIONING DELAY
  547. 5470 ENDADR *=*+2 ;TOP OF RAM
  548. 5480 HEADLN *=*+1 ;POWER ON MESSAGE FLAG
  549. 5490 ;
  550. 5500 KWTAB *=*+2 ;KEYWORD TABLE (PAGEA)
  551. 5510 ;
  552. 5520 DFBORD *=*+1 ;DEFAULT BORDER COLOR
  553. 5530 DFBACK *=*+1 ;DEFAULT BACKGROUND COLOR
  554. 5540 DFFORG *=*+1 ;DEFAULT FOREGROUND COLOR
  555. 5550 ACBORD *=*+1 ;ACTUAL TEXT BORDER
  556. 5560 ACBACK *=*+1 ;ACTUAL TEXT BACKGROUND
  557. 5570 ;
  558. 5580 KEYLEN *=*+16 ;LENGTHS OF FUNC.KEY DEF'S
  559. 5590 KLEN *=*+1 ;# OF CHARS LEFT OF DEF.
  560. 5600 KPNT *=*+2 ;PNT TO KEY DEF
  561. 5610 DEFINP *=*+1 ;SELECT INPUT FLAG
  562. 5620 HZ50 *=*+1 ;0=60 HZ, 1=50 HZ TOD
  563. 5630 ;
  564. 5640 *=*+17 ;RESERVED FOR FUTURE USE
  565. 5650 MTO =*
  566. 5660 ;
  567. 5670 ;
  568. 5680 ;  SUBROUTINES TO USE IN ASSEMBLER
  569. 5690 ;  CODED SUBROUTINES IN COMAL:
  570. 5700 ;
  571. 5710 COLD *=*+3 ;COLD START OF COMAL
  572. 5720 WARM *=*+3 ;WARM START OF COMAL
  573. 5730 CALL *=*+3 ;JSR TO ANOTHER PAGE.
  574. 5740 GOTO *=*+3 ;JMP TO ANOTHER PAGE.
  575. 5750 LOAD *=*+3 ;LOAD FROM PAGEX
  576. 5760 STORE *=*+3 ;STORE TO PAGEX
  577. 5770 EXEC *=*+3 ;JSR TO PAGEX
  578. 5780 ;
  579. 5790 LDAC1 *=*+3 ;LOAD AC1
  580. 5800 LDAC2 *=*+3 ;LOAD AC2
  581. 5810 FNDPAR *=*+3 ;FIND PARAMETER (ASM.CALLS)
  582. 5820 COPY *=*+9 ;COPY AREA TOWARDS LOWER ADDRESSES
  583. 5830 COPYDN *=*+9 ;COPY AREA TOWARDS HIGHER ADDRESSES
  584. 5840 FPADD *=*+3 ;LOAD AC2 AND ADD AC2 TO AC1
  585. 5850 FPADD2 *=*+9 ;ADD AC2 TO AC1
  586. 5860 FPAHF *=*+9 ;ADD 0.5 TO AC1
  587. 5870 FPSUB *=*+3 ;LOAD AC2 AND SUB AC2 FROM AC1
  588. 5880 FPSUB2 *=*+9 ;SUB AC2 FROM AC1
  589. 5890 FPMUL *=*+3 ;LOAD AC2 AND MUL AC2 BY AC1
  590. 5900 FPMUL2 *=*+9 ;MUL AC2 BY AC1
  591. 5910 FPDIV *=*+3 ;LOAD AC2 AND DIV AC2 BY AC1
  592. 5920 FPDIV2 *=*+9 ;DIV AC2 BY AC1
  593. 5930 MUL10 *=*+9 ;MULTIPLY AC1 BY 10.0
  594. 5940 DIV10 *=*+9 ;DIVIDE AC1 BY 10.0
  595. 5950 STAC1 *=*+3 ;STORE AC1
  596. 5960 C1T2 *=*+9 ;COPY AC1 TO AC2
  597. 5970 C2T1 *=*+9 ;COPY AC2 TO AC1
  598. 5980 FPNEG *=*+9 ;NEGATE AC1
  599. 5990 FPSGN *=*+9 ;SIGN OF AC1
  600. 6000 FPSIN *=*+9 ;SINE OF AC1
  601. 6010 FPCOS *=*+9 ;COSINE OF AC1
  602. 6020 FPSQR *=*+9 ;SQUARE ROOT OF AC1
  603. 6030 FPTAN *=*+9 ;TANGENT OF AC1
  604. 6040 FPPOW *=*+9 ;RAISE AC2 TO THE POWER OF AC1
  605. 6050 FPATN *=*+9 ;ARCTANGENT OF AC1
  606. 6060 FPEXP *=*+9 ;RAISE AC1 TO THE POWER OF E
  607. 6070 FPLOG *=*+9 ;LOGARITHM BASE E OF AC1
  608. 6080 FPRND *=*+9 ;COMPUTE PSEUDO-RANDOM NUMBER (RANGE 0 TO 1)
  609. 6090 FPCOM *=*+9 ;COMPARE NUMBER TO AC1
  610. 6100 TRUNC *=*+9 ;CONVERT AC1 INTO INTEGER (-32768 .. 32767)
  611. 6110 FPINT =TRUNC
  612. 6120 FPINTG *=*+9 ;CONVERT AC1 INTO INTE000000004 .. 2^24-1)
  613. 6130 FPINTA *=*+9 ;CONVERT AC1 INTO INTEGER (0 .. 65535)
  614. 6140 INTFP *=*+9 ;CONVERT INTEGER INTO FP IN AC1
  615. 6150 FPASC *=*+9 ;CONVERT AC1 INTO ASCII EQUIVALENT (STR$)
  616. 6160 ;
  617. 6170 VAL *=*+6 ;CONVERT DECIMAL STRING INTO BINARY IN AC1
  618. 6180 POPA1 *=*+9 ;POP AC1
  619. 6190 POPA2 *=*+9 ;POP AC2
  620. 6200 PUSHA1 *=*+9 ;PUSH AC1
  621. 6210 PUSHRL *=*+9 ;PUSH REAL NUMBER
  622. 6220 PSHINT *=*+9 ;FLOAT & PUSH INTEGER (-32768 .. 32767)
  623. 6230 INTFPA *=*+9 ;FLOAT & PUSH INTEGER (0 .. 65535)
  624. 6240 ;
  625. 6250 EXCGST *=*+9 ;ALLOCATE LOCAL STORAGE
  626. 6260 EXCREM *=*+9 ;RECLAIM LOCAL STORAGE
  627. 6270 RESTOP *=*+9 ;ALLOCATE GLOBAL STORAGE
  628. 6280 RUNERR *=*+6 ;(null) TO COMAL ERROR HANDLER
  629. 6290 ;
  630. 6300 CRDT *=*+3 ;READ CHARACTER
  631. 6310 SPACE *=*+2 ;WRITE SPACE
  632. 6320 CWRT *=*+3 ;WRITE CHARACTER
  633. 6330 CCHKIN *=*+3 ;SELECT INPUT FILE
  634. 6340 CCKOUT *=*+3 ;SELECT OUTPUT FILE
  635. 6350 CCLRCH *=*+3 ;CLEAR CHANNEL
  636. 6360 CFNAME *=*+7 ;PARSE & COPY FILE NAME
  637. 6370 COPEN *=*+3 ;OPEN FILE
  638. 6380 CCLOSE *=*+3 ;CLOSE FILE
  639. 6390 CRLF *=*+3 ;OUTPUT CR AND LF
  640. 6400 GETLIN *=*+7 ;INPUT KEYBOARD LINE
  641. 6410 ;
  642. 6420 RESET *=*+6 ;RESET PROGRAM POINTERS
  643. 6430 DUMMY *=*+1 ;EMPTY SUBROUTINE (RTS)
  644. 6440 COMAL *=*+6 ;(null) TO COMAL EDITOR
  645. 6450 EXCUTE *=*+7 ;EXECUTE CODE IN CDBUF
  646. 6460 JLOAD *=*+7 ;LOAD COMAL PROGRAM
  647. 6470 ARRLEN *=*+7 ;COMPUTE NO. OF ELEMENTS IN ARRAY
  648. 6480 ;
  649. 6490 *=$D000
  650. 6500 ;
  651. 6510 ;  6566 VIDEO INTERFACE CONTROLLER
  652. 6520 ;
  653. 6530 VIC =*
  654. 6540 SPRPOS *=*+16 ;SPRITES 0-7  X & Y POS
  655. 6550 SPRXPS *=*+1 ;SPRITES 0-7  X-POS (MSB OF X-COORD.)
  656. 6560 VCTRL1 *=*+1 ;VIC CONTROL REGISTER
  657. 6570 RWRAST *=*+1 ;READ/WRITE RASTER VALUE FOR COMPARE IRQ
  658. 6580 PENX *=*+1 ;LIGHT-PEN LATCH X-POS
  659. 6590 PENY *=*+1 ;LIGHT-PEN LATCH Y-POS
  660. 6600 SPRDSP *=*+1 ;SPRITE DISPLAY ENABLE
  661. 6610 VCTRL2 *=*+1 ;VIC CONTROL REGISTER
  662. 6620 SPRYEX *=*+1 ;SPRITES 0-7 EXPAND 2*VERTICAL (Y)
  663. 6630 VCTRL3 *=*+1 ;VIC MEMORY CONTROL REGISTER
  664. 6640 IRQOCC *=*+1 ;VIC INTERRUPT FLAG REGISTER
  665. 6650 IRQMSK *=*+1 ;IRQ MASK REGISTER
  666. 6660 SPRBDP *=*+1 ;SPRITE TO BACKGROUND DISPLAY PRIORITY
  667. 6670 SPRMCM *=*+1 ;SPRITES 0-7 MULTI-COLOR MODE SELECT
  668. 6680 SPRXEX *=*+1 ;SPRITES 0-7 EXPAND 2*HORIZONTAL (X)
  669. 6690 SPRSPR *=*+1 ;SPRITE TO SPRITE COLLISION DETECT
  670. 6700 SPRBCK *=*+1 ;SPRITE TO BACKGROUND COLLISION DETECT
  671. 6710 BORCOL *=*+1 ;BORDER COLOR
  672. 6720 BCKCOL *=*+4 ;BACKGROUND COLOR 0-3
  673. 6730 SPRMCL *=*+2 ;SPRITE MULTI-COLOR REGISTER 0-1
  674. 6740 SPRCOL *=*+8 ;SPRITE 0-7 COLOR
  675. 6750 ;
  676. 6760 *=$D400
  677. 6770 ;
  678. 6780 ;  6581 SOUND INTERFACE DEVICE
  679. 6790 ;
  680. 6800 SID =* ;VOICE 1:
  681. 6810 V1FREQ *=*+2 ;  FREQUENCY CONTROL
  682. 6820 V1PWW *=*+2 ;  PULSE WAVEFORM WIDTH
  683. 6830 V1CTRL *=*+1 ;  CONTROL REGISTER
  684. 6840 V1ENVL *=*+2 ;  ENVELOPE GENERATOR (ADSR)
  685. 6850 ;VOICE 2:
  686. 6860 V2FREQ *=*+2 ;  FREQUENCY CONTROL
  687. 6870 V2PWW *=*+2 ;  PULSE WAVEFORM WIDTH
  688. 6880 V2CTRL *=*+1 ;  CONTROL REGISTER
  689. 6890 V2ENVL *=*+2 ;  ENVELOPE GENERATOR (ADSR)
  690. 6900 ;VOICE 3:
  691. 6910 V3FREQ *=*+2 ;  FREQUENCY CONTROL
  692. 6920 V3PWW *=*+2 ;  PULSE WAVEFORM WIDTH
  693. 6930 V3CTRL *=*+1 ;  CONTROL REGISTER
  694. 6940 V3ENVL *=*+2 ;  ENVELOPE GENERATOR (ADSR)
  695. 6950 ;FILTERS:
  696. 6960 FCUTOF *=*+2 ;  FILTER CUTOFF FREQUENCY
  697. 6970 FRESON *=*+1 ;  FILTER RESONANCE/VOICE INPUT CONTROL
  698. 6980 FMOVOL *=*+1 ;  SELECT FILTER MODE AND VOLUME
  699. 6990 PADDL1 *=*+1 ;A/D-CONVERTER  GAME PADDLE 1
  700. 7000 PADDL2 *=*+1 ;A/D-CONVERTER  GAME PADDLE 2
  701. 7010 OSC *=*+1 ;OSCILLATOR 3 RANDOM NUMBER GENERATOR
  702. 7020 ENV *=*+1 ;ENVELOPE GENERATOR 3 OUTPUT
  703. 7030 *=$D500
  704. 7040 SIDIMG *=*+768 ;SID IMAGES
  705. 7050 COLRAM *=*+SCSIZE+24 ;COLOR RAM (NYBBLES)
  706. 7060 ;
  707. 7070 *=$DC00
  708. 7080 ;
  709. 7090 ;  6526 COMPLEX INTERFACE ADAPTER #1
  710. 7100 ;
  711. 7110 COLM =* ;KEYBOARD MATRIX
  712. 7120 D1PRA *=*+1
  713. 7130 ROWS =* ;KEYBOARD MATRIX
  714. 7140 D1PRB *=*+1
  715. 7150 D1DDRA *=*+1
  716. 7160 D1DDRB *=*+1
  717. 7170 D1T1L *=*+1
  718. 7180 D1T1H *=*+1
  719. 7190 D1T2L *=*+1
  720. 7200 D1T2H *=*+1
  721. 7210 D1TOD1 *=*+1
  722. 7220 D1TODS *=*+1
  723. 7230 D1TODM *=*+1
  724. 7240 D1TODH *=*+1
  725. 7250 D1SDR *=*+1
  726. 7260 D1ICR *=*+1
  727. 7270 D1CRA *=*+1
  728. 7280 D1CRB *=*+1
  729. 7290 ;
  730. 7300 *=$DD00
  731. 7310 ;
  732. 7320 ;  6526 COMPLEX INTERFACE ADAPTER #2
  733. 7330 ;
  734. 7340 D2PRA *=*+1
  735. 7350 D2PRB *=*+1
  736. 7360 D2DDRA *=*+1
  737. 7370 D2DDRB *=*+1
  738. 7380 D2T1L *=*+1
  739. 7390 D2T1H *=*+1
  740. 7400 D2T2L *=*+1
  741. 7410 D2T2H *=*+1
  742. 7420 D2TOD1 *=*+1
  743. 7430 D2TODS *=*+1
  744. 7440 D2TODM *=*+1
  745. 7450 D2TODH *=*+1
  746. 7460 D2SDR *=*+1
  747. 7470 S2ICR *=*+1
  748. 7480 D2CRA *=*+1
  749. 7490 D2CRB *=*+1
  750. 7500 ;
  751. 7510 *=$DE00
  752. 7520 ;
  753. 7530 OVRLAY *=*+256 ;OVERLAY CONTROL PORT
  754. 7540 ;
  755. 7550 ;  KERNAL JUMP TABLE
  756. 7560 ;
  757. 7570 *=$FF81
  758. 7580 ;
  759. 7590 CINT *=*+3 ;INIT SCREEN EDITOR
  760. 7600 IOINIT *=*+3 ;INIT I/O
  761. 7610 RAMTAS *=*+3 ;INIT RAM
  762. 7620 RESTOR *=*+3 ;RESTORE DEFAULT I/O VECTORS
  763. 7630 VECTOR *=*+3 ;READ/SET VECTORED I/O
  764. 7640 SETMSG *=*+3 ;CONTROL KERNAL MESSAGES
  765. 7650 SECOND *=*+3 ;SEND SA AFTER LISTEN
  766. 7660 TKSA *=*+3 ;SEND SA AFTER TALK
  767. 7670 MEMTOP *=*+3 ;READ/SET TOP OF MEMORY
  768. 7680 MEMBOT *=*+3 ;READ/SET BOTTOM OF MEMORY
  769. 7690 SCNKEY *=*+3 ;SCAN KEYBOARD
  770. 7700 SETTMO *=*+3 ;SET TIMEOUT DEFEAT
  771. 7710 ACPTR *=*+3 ;INPUT BYTE FROM SERIAL PORT
  772. 7720 CIOUT *=*+3 ;OUTPUT BYTE TO  SERIAL PORT
  773. 7730 UNTLK *=*+3 ;COMMAND DEVICE TO UNTALK
  774. 7740 UNLSN *=*+3 ;COMMAND DEVICE TO UNLISTEN
  775. 7750 LISTN *=*+3 ;COMMAND DEVICE TO LISTEN
  776. 7760 TALK *=*+3 ;COMMANDS DEVICE TO TALK
  777. 7770 RDSTAT *=*+3 ;READ I/O STATUS WORD
  778. 7780 SETLFS *=*+3 ;SET LOGICAL, FIRST, AND SECOND ADDR.
  779. 7790 SETNAM *=*+3 ;SET FILE NAME
  780. 7800 OPEN *=*+3 ;OPEN LOGICAL FILE
  781. 7810 CLOSE *=*+3 ;CLOSE LOGICAL FILE
  782. 7820 CHKIN *=*+3 ;OPEN CHANNEL FOR INPUT
  783. 7830 CHKOUT *=*+3 ;OPEN CHANNEL FOR OUTPUT
  784. 7840 CKOUT =CHKOUT
  785. 7850 CLRCHN *=*+3 ;CLOSE I/O CHANNELS
  786. 7860 CLRCH =CLRCHN
  787. 7870 CHRIN *=*+3 ;INPUT CHAR FROM CHANNEL
  788. 7880 RDT =CHRIN
  789. 7890 CHROUT *=*+3 ;OUTPUT CHAR TO CHANNEL
  790. 7900 WRT =CHROUT
  791. 7910 LOADF *=*+3 ;LOAD RAM FROM A DEVICE
  792. 7920 SAVEF *=*+3 ;SAVE RAM TO DEVICE
  793. 7930 SETTIM *=*+3 ;SET REAL TIME CLOCK
  794. 7940 RDTIM *=*+3 ;READ REAL TIME CLOCK
  795. 7950 STOP *=*+3 ;SCAN STOP KEY
  796. 7960 GET *=*+3 ;GET CHAR FROM KEYBOARD BUFFER
  797. 7970 CLALL *=*+3 ;CLOSE ALL CHANNELS AND FILES
  798. 7980 UDTIM *=*+3 ;INC. REAL TIME CLOCK
  799. 7990 SCREN *=*+3 ;RETURN ROW,COLUMN OF CURSOR
  800. 8000 PLOT *=*+3 ;READ/SET ROW,COLUMN FOR CURSOR
  801. 8010 IOBASE *=*+3 ;RETURNS BASE ADDRESS OF I/O DEVICES
  802. 8020 ;
  803. 8030 SKIP =$2C ;OPCODE FOR 'BIT <ABS>' (SKIP 2 BYTES)
  804. 8040 ;
  805. 8050 ;
  806. 8060 *=$FFFA
  807. 8070 ;
  808. 8080 CNMI *=*+2 ;NON-MASKABLE INTERRUPT VECTOR
  809. 8090 CRESET *=*+2 ;SYSTEM RESET VECTOR
  810. 8100 CIRQ *=*+2 ;INTERRUPT REQUEST VECTOR
  811. 8110 ;
  812. 8120 ;
  813. 8130 ;********************************************************
  814. 8140 ;
  815. 8150 ;
  816. 8160 ; FOR USE IN ASSEMBLER CODED SUBROUTINES IN COMAL:
  817. 8170 ;
  818. 8180 ; LABELS FOR PROC/FUNC DEFINITIONS
  819. 8190 ;
  820. 8200 CART =%10000000 ;10XRXPPP (IN CARTRIDGE AT $8000-$BFFF)
  821. 8210 C64 =%01000111 ;01XRXPPP (IN C64       AT $0900-$FFFF)
  822. 8220 ROMMED =%00010000
  823. 8230 ;
  824. 8240 DEFPAG =C64-LORAM
  825. 8250 ;
  826. 8260 PROC =112
  827. 8270 ENDPRC =126
  828. 8280 ;
  829. 8290 FUNC =227
  830. 8300 ENDFNC =126
  831. 8310 ;
  832. 8320 PARAM =114
  833. 8330 VALUE =PARAM+0
  834. 8340 REF =PARAM+3
  835. 8350 ARRAY =6
  836. 8360 ;
  837. 8370 REAL =0
  838. 8380 INT =1
  839. 8390 STR =2
  840. 8400 ;
  841. 8410 ;
  842. 8420 ;  SIGNAL TYPES:
  843. 8430 ;
  844. 8440 POWER1 =0 ;POWER UP SEI (ONLY FOR ROMMED LIBRARIES)
  845. 8450 POWER2 =1 ;POWER UP CLI (ONLY FOR ROMMED LIBRARIES)
  846. 8460 LINK =2 ;AFTER LINK/LOAD-COMMAND (ONLY LIBRARY JUST LINKED)
  847. 8470 DSCRD =3 ;BEFORE DISCARD-COMMAND
  848. 8480 NEW =4 ;AFTER NEW-COMMAND OR BAD LOAD/RUN/CHAIN
  849. 8490 CLRTAB =5 ;AFTER NAME TABLE IS CLEARED
  850. 8500 RUN =6 ;BEFORE RUN/CHAIN
  851. 8510 WARM1 =7 ;WARM START SEI
  852. 8520 CON =8 ;BEFORE CONTINUATION (CON COMMAND)
  853. 8530 ERROR =9 ;AFTER ERROR MESSAGE PRINTED
  854. 8540 STOP1 =10 ;AFTER STOP/END
  855. 8550 BASIC =11 ;BEFORE LEAVING COMAL
  856. 8560 ;
  857. 8570 ;
  858.